<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> 致敬犀牛book </title>
</head>
<body>
    
</body>
</html>
<script>
    //2021-06-08-夜 
    //后来者都是各凭本事 所以没有资格抱怨 
    
    //编程语言分为(动态类型语言) && (静态类型语言)

    //动态类型的语言? 
    /*
    *   指的是在运行期间去做数据类型检查的语言 
    *就是说 如果你使用动态类型语言去编程 永远也不用给任何变量指定类型数据    
    *该语言会在第一次赋值变量时 在内部将数据类型记录下来
    *Python Ruby JavaScript 就是典型的动态类型语言  
    */  

    //静态类型的语言？
    /*
    *   静态类型与动态类型恰恰相反
    *它的数据类型时在编译期间检查的
    *就是说在写程序时要声明所以变量的数据类型
    *c/c++ 是 静态类型的典型代表 还有c# JAVA
    */
   
  //面试？
    //两大编程思想   |   请你简述 pop和opp是什么？有什么区别？
 //————>1面向过程编程(pop)
      //面向过程就是分析解决问题所需要的步骤，然后用函数/方法/过程把这些步骤一步一步实现 
    //使用的时候一个一个调用
      //举个例子 
            //把大象装进冰箱 
            // 1把冰箱门打开
            // 2把大象塞进去
            // 3把冰箱门带上  
            //常用代表语音  c
//————>2面向对象编程(opp)
        //面向对象编程就是把事物分成一个一个对象，然后对象之间的 分工合作
            //举个例子
            //把大象装进冰箱  1先找出对象并写对象的功能
            //大象对象：进去
            //冰箱对象：打开，关闭
            //使用大象和冰箱的功能
        //注意！面向对象是以功能来划分问题，而不是步骤
        //在面向对象编程具有灵活，代码可以复用，易维护和开发
        //面试题？
         //面向对象的三大特征 (继承/封装/多态（多种形态,具体点就是去完成某个行为）)

/*
面向对象有封装，继承，多态等几个重要的特性：

  封装：
        类也是一个函数，把一个功能对应的数据和数据操作方法单独封装起来，
        外部在使用的时候不用关系内部是怎么实现的，仅给外部提供了调用方法，外部不能直接修改或是操作数据。
        保证了内部数据的安全性。（低耦合高内聚）
  继承：
        子类可以继承父类的属性以及方法。提高代码的复用性，方便扩展
  多态：
        函数重写：子类重写父类上的方法（基于继承来实现的）
        函数的重载，由于参数或是返回值的不同，具备了不同的功能的方法。
        在js中其实没有严格意义上的函数重载，js的重载是在一个方法内，根据传参不同实现不同的功能。
*/

</script>